card_list = []


def show_menu():
    """显示菜单
    :rtype: object
    """
    print("\n")
    print("*" * 50)
    print("欢迎使用名片管理系统 v1.0")
    print("")
    print("1. 新增名片")
    print("2. 显示全部")
    print("3. 搜索名片")
    print("")
    print("0. 退出程序")
    print("*" * 50)


def new_card():
    """新建名片
    :rtype: object
    """
    print("_" * 50)
    print("新建名片")

    # 提示用户输入名片详细信息
    name = input("请输入姓名：")
    age = input("请输入年龄：")
    sex = input("请输入性别：")

    card_list.append({"name": name, "age": age, "sex": sex})

    print(card_list)


def show_all():
    """所有名片
    :rtype: object
    """
    print("_" * 50)
    print("所有名片")

    # 判断列表是否包含名片，没有的话，表头也不打印了。
    if len(card_list) == 0:
        print("当前没有任何名片")
        return

    tale_name = ["姓名", "年龄", "性别"]

    for name in tale_name:
        print(name, end="\t\t")
    print("")
    print("=" * 50)

    for card in card_list:
        print("%s\t\t%s\t\t%s\t\t" % (card["name"], card["age"], card["sex"]))


def search_card():
    """搜索名片
    :rtype: object
    """
    print("_" * 50)
    print("搜索名片")

    # 提示用户需要搜索的名称
    name = input("请输入要搜索的姓名：")

    # 遍历名片查询名称
    for card in card_list:
        deal_card(card)
        break

    else:
        print("没有找到")


def deal_card(find_card):
    """
    处理修改和删除
    :rtype: object
    """
    print(card_list)
    option = input("请选择要执行的操作 [1]修改 [2]删除 [0]返回上级菜单")
    if option == "1":
        # 提示用户输入名片详细信息
        find_card["name"] = input_card_info(find_card["name"], "请输入姓名：")
        find_card["age"] = input_card_info(find_card["age"], "请输入年龄：")
        find_card["sex"] = input_card_info(find_card["sex"], "请输入性别：")

        print("修改成功")
        pass
    elif option == "2":
        card_list.remove(find_card)
        pass


def input_card_info(dict_val, tip_message):
    """
    没有输入的时候使用原有的默认值
    :rtype: object
    """
    result_str = input(tip_message)
    if len(result_str) == 0:
        return dict_val
    else:
        return result_str

    pass
